import '../../../../core/controllers/base_controller.dart';
import '../../../../shared/services/auth_service.dart';

class ProfileController extends BaseController {
  final AuthService _authService = AuthService.instance;

  @override
  void onInit() {
    super.onInit();
    setTitle('个人资料');
    loadUserProfile();
  }

  // 加载用户资料
  Future<void> loadUserProfile() async {
    await performAsyncOperation(() async {
      // 这里可以从API获取用户资料
      await Future.delayed(const Duration(seconds: 1));
      logInfo('User profile loaded');
    });
  }

  // 打开账户安全设置
  void openAccountSecurity() {
    showInfoMessage('打开账户安全设置');
    // 这里可以跳转到账户安全设置页面
  }

  // 打开隐私设置
  void openPrivacySettings() {
    showInfoMessage('打开隐私设置');
    // 这里可以跳转到隐私设置页面
  }

  // 打开消息通知设置
  void openNotificationSettings() {
    showInfoMessage('打开消息通知设置');
    // 这里可以跳转到消息通知设置页面
  }

  // 打开帮助与反馈
  void openHelp() {
    showInfoMessage('打开帮助与反馈');
    // 这里可以跳转到帮助与反馈页面
  }

  // 打开关于我们
  void openAbout() {
    toNamed('/about');
  }

  // 退出登录
  Future<void> logout() async {
    final confirmed = await showConfirmDialog(
      title: '确认退出',
      message: '您确定要退出登录吗？',
      confirmText: '退出',
      cancelText: '取消',
    );

    if (confirmed) {
      showLoadingDialog(message: '正在退出...');
      
      try {
        await _authService.logout();
        hideLoadingDialog();
        showSuccessMessage('已退出登录');
        offAllNamed('/login');
      } catch (e) {
        hideLoadingDialog();
        showErrorMessage('退出失败: $e');
      }
    }
  }

  // 刷新用户资料
  @override
  Future<void> onRefresh() async {
    await loadUserProfile();
  }

  // 重试操作
  @override
  Future<void> onRetry() async {
    await loadUserProfile();
  }
}